凌晨2点,我教女友,使用全球最大的同性交友社区?
技术 / 架构 / 职场 / 面试 / 内推
GitHub被戏称为全球最大同性交友网站,其实道理都懂,活跃人数男性占据95%以上,所以。。。就是这样了。
跟女朋友有啥关系呢?,女友不会GitHub的使用啊,为什么要教这些呢?
因为Git已经成为程序员必备技能之一,而GitHub做为做流行的Git仓库托管平台,其不仅提供Git仓库托管,还是一个非常棒的技术人员社交平台,可以通过开源的项目进行协作、交流,是现在优秀的工程师必须娴熟运用的。
文章目录
Github 是什么 Github 优势有哪些 GitHub 注册 GitHub 验证 GitHub 上创建仓库 GitHub 修改并提交 GitHub Fork 使用 Github watch 功能 Github star 功能
Github 是什么
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。 GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。
作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
Github 优势有哪些
GitHub 之所以如此受欢迎,它的优势是不容忽视的。GitHub的优势主要有以下七点:
1、GitHub 只支持 Git 格式的版本库托管,而不像其他开源项目托管平台还对CVS、SVN、Hg 等格式的版本库进行托管。GitHub 的哲学很简单,既然 Git 是最好的版本控制系统之一(对于很多喜欢 Git 和 GitHub 的人没有之一),没有必要为兼顾其他版本控制系统而牺牲 Git 某些独有特性。因此没有支持其他版本控制系统的历史负担,是 GitHub 成功的要素之一。
2、GitHub 对 Git 版本库提供了完整的协议支持,支持 HTTP 智能协议、Git-daemon、SSH 协议。
3、GitHub 提供在线编辑文件的功能,不熟悉 Git 的用户也可以直接通过浏览器修改版本库里的文件。
4、将社交网络引入项目托管平台是 GitHub 的创举。用户可以关注项目、关注其他用户进而了解项目和开发者动态。
5、项目的 Fork 和 Pull Request 构成 GitHub 最独具一格的工作模式。对提交代码的逐行评注及 Pull Request 构成 GitHub 特色的代码审核。
6、GitHub 通过私有版本库托管、面向企业的版本库托管和项目管理平台、人员招聘等付费服务获得了商业上的成功,这种成功使得 GitHub 不必以页面中嵌入广告的方式维持运营,最大的受益者还是用户。
7、GitHub 网站采用 Ruby on Rails 架构,在 Web 设计中运用了大量的JavaScript、AJAX、HTML5 等技术,支持对使用 Markdown 等标记语言的内容进行渲染和显示等。关注细节使得 GitHub 成为了项目托管领域的后起之秀。
GitHub 注册
要想使用GitHub,必须先拥有GitHub账号。本文将教大家如何快速注册GitHub账号。
GitHub账号注册步骤:
1、首先打开 https://github.com 进行注册。
2、在打开的页面中点击「Sign up」注册,如图所示。
3、在接下来的页面中填写,用户名,email,密码,验证码,点击「Create an account」按钮创建账户,如下图。
4、选择账户类型 ,这里我们默认选择 “Free” 类型,点击「Continue」按钮,如图。
5、定制您GitHub的体验,点击「Submit」按钮,如图。
6、验证您的电子邮件地址
GitHub 验证
要想正常使用GitHub,我们需要安装Git,然后通过Git来验证GitHub。下面是Git的安装步骤以及GitHub的验证方法介绍。
关于Git的安装方法,可以参考:https://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html
Git安装完成后,打开 Terminal 命令(针对苹果系统用户)或者命令提示行(针对 Windows 和 Linux 用户)。
然后告诉 Git 你的姓名,以便你的提交能被正确地标记。在 $ 后输入下面的内容:
$ git config --global user.name "YOUR NAME"
告诉 Git 邮箱地址,以便与你的 Git 提交进行关联。你指定的邮箱要和邮箱设置里的是同一个。如何保持你的邮箱地址隐藏,请参考:https://help.github.com/articles/setting-your-commit-email-address-on-github/
通过 Git 验证 GitHub
当你通过 Git 连接到一个 GitHub 仓库后,我们需要验证 GitHub,这里有两种验证方法:
1、通过 HTTPS 建立连接(推荐)
如果选择 HTTPS 方式,我们可以用一个证书小帮手把 GitHub 密码缓存在 Git。
2、通过 SSH 建立连接
如果选择 SSH 方式,我们需要在电脑中生成 SSH keys,用来从 GitHub 中 push 或 pull。
GitHub 上创建仓库
一个仓库通常用来组织一个单独的项目。该仓库可以包含你项目中的所有文件,如文件夹、文件、图片、视频、电子表格、数据集等。我们建议包含一个README文件,或者你自定义的用来记录项目信息的文件。GitHub将默认在你创建仓库的时候添加它。在创建的同时还提供了权限许可选项。
你可以用你的“hello-world”仓库来存储你的想法、资源,甚至用它来和别人分享、讨论任何事情。
创建一个新的仓库
1、在页面的最右上角,你的头像的左边,点击“+”,在弹出的下拉选项中选择“New repository”。
2、在仓库名称输入框中输入你的仓库名称:“hello-world”。
3、写一个简短的描述。
4、选择你的仓库类型为公有或者私有:
Public:公有仓库对于一个刚入门的新手来说是一个不错的选择。这些仓库在 GitHub 上对于每个人是可见,你可以从协作型社区中受益。
Private:私有仓库需要更多地步骤。它们只对于你来说是可用的,这个仓库的所有者属于你和你所指定要分享的合作者。私有仓库仅仅对付费账户可用。
5、勾选“Initialize this repository with a README”。
最后点击“Create repository”按钮,完成创建。
GitHub 修改并提交
在GitHub中,保存更改被称为“提交”。每一次提交都需要写一段我们为什么做出修改的备注说明。这些备注说明将对你的更改做出记录,其他伙伴看到之后就知道你每次都提交了什么。
做出修改并提交:
1、点击“README.md”文件,切换到“README.md”内容页面
2、点击编辑框右上角的铅笔按钮,进入编辑界面
3、在 Edit file 标签上,输入一些关于你自己的信息。
4、在下方的“提交更改”框中,输入你做出此次修改的备注说明
5、点击下方的“Commit changes”按钮进行修改提交。
GitHub Fork 使用
Fork 是对一个仓库的克隆。克隆一个仓库允许你自由试验各种改变,而不影响原始的项目。
一般来说,forks 被用于去更改别人的项目(贡献代码给已经开源的项目)或者使用别人的项目作为你自己想法的初始开发点。
提出更改别人的项目
使用 forks 提出改变的一个很好的例子是漏洞修复。与其记录一个你发现的问题,比如:
●Fork 这个仓库
●进行修复
●向这个项目的拥有者提交一个 pull requset
如果这个项目的拥有者认同你的成果,他们可能会将你的修复更新到原始的仓库中!
使用别人的项目作为你自己想法的初始开发点
开源的核心是共享代码,我们可以制作更好、更可靠的软件。
事实上,当你在 GitHub 上创建一个仓库时,你可以选择自动包含一个许可文件,这个文件决定你是否希望将你的项目分享给其他人。
Fork 一个仓库分为简单的两步:
1、在 GitHub 上,定位到 souyunku/SpringBootExamples 仓库。
2、在页面右上角,点击 Fork 按钮。
fork 的仓库中
就这样!现在你已经 fork 这个原始的 souyunku/SpringBootExamples 仓库。
同步你的 Fork 仓库
你或许已经 fork 一个项目为了提交更改向 upstream 或原始仓库。这种情况下,很好的实现了将 upstream 仓库定期同步到你的 fork。要做到这一点,你需要在命令行中使用 Git。你可以使用你刚刚 fork 的 octocat/Spoon-Knife 仓库去练习设置 upstream 仓库。
第一步:安装 Git
你首先应该 安装 Git,如果你还没有。也不要忘记 通过 Git 验证 GitHub。
第二步:为你 fork 的仓库创建一个本地克隆
现在,你已经成功 fork Spoon-Knife 仓库,但在你自己的计算机上并没有这个仓库的文件。让我们克隆你 Fork 的代码到你本地的计算机上。
1、在 GitHub 上,定位到你 fork 的 Spoon-Knife 仓库。
2、在你 fork 的仓库页面的右侧边栏,点击复制图标复制你 fork 的 URL。
3、打开 Terminal 命令(针对苹果系统用户)或者命令提示行(针对 Windows 和 Linux 用户)。
4、输入 git clone,然后粘贴在步骤 2 复制的 URL。它看起来就像如下所示,用你 GitHub 的用户名代替 YOUR-USERNAME:
$ git clone https://github.com/GolangStack/SpringBootExamples.git
5、按下 回车键 ,你的本地克隆就创建了。
$ git clone https://github.com/GolangStack/SpringBootExamples.git
Cloning into 'SpringBootExamples'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 1203 (delta 0), reused 0 (delta 0), pack-reused 1200
Receiving objects: 100% (1203/1203), 1.08 MiB | 566.00 KiB/s, done.
Resolving deltas: 100% (267/267), done.
Checking connectivity... done.
现在,你已经有了针对你 fork 的 SpringBootExamples 仓库的本地克隆代码!
第三步:通过配置 git 来同步你 fork 的原始 SpringBootExamples 仓库
当你 fork 一个项目是为了提出更改这个原始的仓库,你可以配置 Git 将原始的或者 upstream 的变化更改到你本地。
1、在 GitHub 上,定位到 GolangStack/SpringBootExamples 仓库。
2、在这个仓库页面的右侧边栏,点击复制图标复制这个仓库的 URL。
3、打开 Terminal 命令(针对 Mac 用户)或提示命令行(Windows 和 Linux 用户)。
4、更改到你在步骤 2(创建一个本地)创建的你的 fork 的本地的目录。
5、输入 git remove -v,按下回车键,你将会看到你的 fork 当前配置的远程仓库:
$ git remote -v
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
6、输入 git remote add upstream,然后粘贴你在步骤 2 复制的 URL 并按下回车键。它看起来如下所示:
$ git remote add upstream https://github.com/GolangStack/SpringBootExamples.git
7、验证你 fork 里新指明的这个 upstream 仓库,再次输入 git remote -v。你将会看到你 fork 的 URL 作为原始的地址,而原始的仓库的 URL 作为 upstream。
$ git remote -v`
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
现在,你可以利用几个 Git 命令保持你的 fork 与 upstream 的仓库的同步。
Github watch 功能
Watch翻译成中文是“观看”的意思,在github中,我们可以将其翻译成观察的意思。
在github中,点击watch我们可以看到以下列表:
对于别人的项目,默认自己都处于 Not watching 的状态,当你选择 Watching,表示你以后会关注这个项目的所有动态,这个项目以后只要发生变动,如被别人提交了 pull request、被别人发起了issue等等情况,你都会在自己的个人通知中心,收到一条通知消息,如果你设置了个人邮箱,那么你的邮箱也可能收到相应的邮件。
如下,我 watching 了开源项目android-cn/android-discuss,那么以后任何人只要在这个项目下提交了 issue 或者在 issue 下面有任何留言,我的通知中心就会通知我。如果你配置了邮箱,你还可能会因此不断的收到通知邮件。
如果你不想接受这个项目的所有通知,那么点击 Not Watching 即可。
Github star 功能
star 翻译过来是星,但这个翻译没任何具体意义,在Github中,可以解释为 关注
或者 点赞
更合适,当你点击 star,表示你喜欢这个项目或者通俗点,可以把他理解成朋友圈的点赞吧,表示对这个项目的支持。
不过相比朋友圈的点赞,github 里面会有一个列表,专门收集了你所有 star 过的项目,点击 github 个人头像,可以看到 your stars 的条目,点击就可以查看你 star 过的所有项目了,如下图所示
不过,star 列表很容易出现这样的问题:如果你平时比较爱逛 Github, star 的项目过多后怎么快速查找自己想要的项目怎么办?
这时,如果 github 可以提供一个分类功能该多好,就像微信公众号文章的收藏,你在点击微信菜单中的收藏后,微信会提示你对收藏的文章设置 tag。这样设置的好处是,以后在微信收藏列表中查找项目时,可以根设置的 tag 归类查找,这样查找效率会提高不少。
但是不知道 github 的产品经理是怎么想的,github 本身没有这个功能。但是 github 这个全球最大的程序员社区从来也不缺有思想有执行力的程序员。
这不,现在就有人做了一个 Chrome 插件,这个插件可以对 github 中所有 star 的项目进行分类,如下所示,注意看图片右侧,多了一个 Filter by tag 列表。
尽管这个插件已经很好了,但是还是有缺点,你只能 star 完项目了,然后去 star 列表,才能对项目打 tag,这是很不方便的。真心希望,未来 github 可以自己支持对 star 的 tag 处理。
参考:https://www.w3cschool.cn/github
版权申明:部分内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知我们,我们会立即删除并表示歉意。谢谢!
作者:鹏磊
来源:微信公众号,搜云库技术团队
整编:搜云库技术团队,欢迎广大技术人员投稿
投稿邮箱:admin@souyunku.com
如果对本文的内容有疑问,请在文章留言区留言,谢谢。
更多技术干货
如何保障消息100%成功投递给MQ中间件
知乎千万级高性能长连接网关是如何搭建的
淘宝服务端高并发分布式架构演进之路
面试官,聊一下你对MySQL索引实现原理?
面试问,Kafka为什么速度那么快?
震惊了,原来这才是Kafka的“真面目”
MySQL 索引为什么要用B+树?而不是其他树